import axios from 'axios';

/**
 *  二次封装axios为什么？
 * 1. 统一处理token携带  ---> 拦截请求
 * 2. 统一处理loading()  ---> 请求/响应
 * 3. 统一处理错误状态码； ----> 响应
 */
// 1. 创建实例
const service = axios.create({
  // baseURL: '', // 当接口 由后台实现跨域的话，这个才能使用，如果前端使用代理，这个不能用
  timeout: 50000
})

// 2. 拦截请求
service.interceptors.request.use(config => {
  // 统一处理token 带在请求头里面；？ （） authorization: 授权
  config.headers.authorization = localStorage.getItem('token')
  return config;
}, () => {
  return Promise.reject()
})

// 3. 拦截响应
service.interceptors.response.use(response => {
   // 统一处理返回数据   根据业务 书写代码；
   return response.data;
}, (err) => {
  return Promise.reject(err)
})

export default service;
